#Copyright 2011 Mohit Shah

#This file is part of soundblogs-python.

#soundblogs-python is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.

#soundblogs-python is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.

#You should have received a copy of the GNU General Public License
#along with soundblogs-python.  If not, see <http://www.gnu.org/licenses/>.

import scipy.fftpack as ffthand
import numpy as np

class Build:
    def __init__(self):
        self.timeFeat = []
        self.specFeat = []
    def pushTimeFeatures(self,feature):
        self.timeFeat.append(feature)
    def pushSpecFeatures(self,feature):
        self.specFeat.append(feature)
    def calcFeatures(self,data):
        for feature in self.timeFeat:
            ans = feature.calculate(data)
            feature.store(ans)
        temp = ffthand.fft(data)
        fftdata = np.abs(temp)
        for feature in self.specFeat:
            ans = feature.calculate(fftdata)
            feature.store(ans)
